//
//  LKImageCorpperPickerManager.h
//  LKImagePickerDemo
//
//  Created by LIUKUN-PC on 16/6/4.
//  Copyright © 2016年 liukun. All rights reserved.
//

#import <UIKit/UIKit.h>

//剪切图片来源
typedef NS_ENUM(NSInteger, LKImageCropPickerSourceType) {
    LKImageCropPickerSourceTypeAll,              //来源于照片库和相机
    LKImageCropPickerSourceTypePhotosLibrary,    //只来源于照片库
    LKImageCropPickerSourceTypeCamera            //只来源于相机
};

//剪切形状类型
typedef NS_ENUM(NSInteger, LKImageCropType) {
    LKImageCropTypeCircle,        //圆形
    LKImageCropTypeSquare,        //正方形
    LKImageCropTypeRectangle,     //长方形
    LKImageCropTypeCustom         //自定义
};

@interface LKImageCropPicker : NSObject

/**
 *  推出选择照片视图
 *
 *  @param sourceType 图片来源
 *  @param cropType   剪切形状类型
 *  @param completion 完成选择的回调, cropedImage为剪切后的图片
 */
- (void)pickCroppedImageWithSourceType:(LKImageCropPickerSourceType)sourceType cropType:(LKImageCropType)cropType completion:(void(^)(UIImage *croppedImage))completion;

/**
 *  创建实例的工厂方法
 *
 *  @param currentViewController 当前视图控制器
 *
 *  @return LKImageCropPicker类型的实例对象
 */
+ (instancetype)imageCropPickerWithCurrentViewController:(UIViewController *)currentViewController;

/** 圆半径, 默认值为 （ScreenWidth - 30）/ 2
 *  当cropType为LKImageCropTypeCircle时有效
 */
@property (nonatomic, assign) CGFloat circleRadius;

/** 正方形边长, 默认值为 ScreenWidth - 30
 *  当cropType为LKImageCropTypeSquare时有效
 */
@property (nonatomic, assign) CGFloat squareLenght;

/** 长方形尺寸，默认值为 width = ScreenWidth - 30, height = ScreenHeight - 30
 *  当cropType为LKImageCropTypeRectangle时有效
 */
@property (nonatomic, assign) CGSize rectangleSize;

/** 自定义剪切路径, 无默认值
 *  当cropType为LKImageCropTypeCustom时有效
 */
@property (nonatomic, strong) UIBezierPath *cropPath;

@end
